package com.woniu.defecttracking.service;

import com.woniu.defecttracking.dto.BugCountsDto;
import com.woniu.defecttracking.dto.BugInfoDto;
import com.woniu.defecttracking.dto.BugInfosDto;
import com.woniu.defecttracking.entity.BugInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniu.defecttracking.exception.BugInfoException;
import com.woniu.defecttracking.param.*;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author tiangle
 * @since 2021-12-31
 */
public interface BugInfoService extends IService<BugInfo> {
    boolean addOne(AddAndEditBugInfo addAndEditBugInfo) throws BugInfoException;
    boolean editOne(AddAndEditBugInfo addAndEditBugInfo) throws BugInfoException;
    boolean deleteOne(Integer id) throws BugInfoException;
    boolean deletes(List<Integer> ids) throws BugInfoException;
    BugInfoDto getOne(Integer id);
    BugInfosDto getAll(AllBugInfosParam allBugInfosParam) throws BugInfoException;
    BugInfosDto getAllNew(AllBugInfosParam allBugInfosParam) throws BugInfoException;
    BugInfosDto getAllGo(AllBugInfosParam allBugInfosParam) throws BugInfoException;
    BugInfosDto getAllGoAndEnd(AllBugInfosParam allBugInfosParam) throws BugInfoException;
    BugInfosDto getAllKo(AllBugInfosParam allBugInfosParam) throws BugInfoException;
    boolean giveOne(AddAndEditBugInfo addAndEditBugInfo) throws BugInfoException;
    boolean koBug(KoBugInfoParam koBugInfoParam) throws BugInfoException;
    boolean closeBug(CloseBugParam closeBugParam);
    BugCountsDto bugTypeCount(AllBugInfosParam allBugInfosParam) throws BugInfoException;
    BugCountsDto savarityCount(AllBugInfosParam allBugInfosParam) throws BugInfoException;
    BugCountsDto priorityCount(AllBugInfosParam allBugInfosParam) throws BugInfoException;
}
